[% setvar title The Perl 6 Summary for the week ending 20030907 %]
<div id="archive-notice">
    <h3>This file is part of the Perl 6 Archive</h3>
    <p>To see what is currently happening visit <a href="http://www.perl6.org/">http://www.perl6.org/</a></p>
</div>
<div class='pod'>
<a name='The Perl 6 Summary for the week ending 20030907'></a><h1>The Perl 6 Summary for the week ending 20030907</h1>
<p>Welcome to the last Perl 6 summary of my 35th year. Next week's
summary will (in theory) be written on my 36th birthday (a year of
being square, so no change there then). I'll give you fair warning
that it might be late, though it probably won't. Newcastle University
has, in its infinite wisdom decided to have its students enrolling on
that day so Gill will be off up to Newcastle to register leaving me
at home with nothing to do but keep the house tidy in case a buyer
wants to come and look at it, so sitting in one place with a laptop
writing a summary seems like a good strategy.</p>
<p>As last week's 'world turned upside down' approach of starting
with perl6-language was such a success we'll do the same again this
week.</p>
<a name='The language list gets some traffic shock!'></a><h2>The language list gets some traffic shock!</h2>
<p>Jonadab the Unsightly One replied to Abhijit A. Mahabal's message
from the first of August concerning junctions and set theory.</p>
<p><a href='http://groups.google.com/groups?threadm=fzjfanij.fsf@jonadab.homeip.net' target='_blank'>groups.google.com</a></p>
<a name='Meanwhile, on perl6-internals'></a><h1>Meanwhile, on perl6-internals</h1>
<a name='Serialization is Hard!'></a><h2>Serialization is Hard!</h2>
<p>Last week's discussion of serialization sparked off by Leopold
T&ouml;tsch's suggestion of a <code>vtable-&gt;dump</code> mode <i>really</i> got
into its stride this week. It turns out that getting this right is a
Hard Problem in the presence of threads.</p>
<p>Dan's plan for serialization involves using the GC's object graph
walker to work out what to serialize when you tell Parrot to dump a
PMC. Leo worried that this would essentially stop the garbage
collector running during serialization which could be tricky if the
serialization process tried to allocate any memory.</p>
<p>Dan and Leo ended up in a protracted, but polite, argument about
details.</p>
<p>At about 45 entries into the thread, Leo produced a summary of the
various options and issues associated with them.</p>
<p><a href='http://groups.google.com/groups?threadm=a0521060dbb7978890bf1@' target='_blank'>groups.google.com</a>[63.120.19.221]</p>
<p><a href='http://groups.google.com/groups?threadm=200309041031.h84AV8k12702@thu8.leo.home' target='_blank'>groups.google.com</a> -- Leo's summary</p>
<a name='File Spec'></a><h2>File Spec</h2>
<p>Leo T&ouml;tsch commented on Vladimir Lipskiy's implementation of a
<i><a href='http://search.cpan.org/perldoc?File::Spec'>File::Spec</a></i> like tool for Parrot. (File::Spec is Perl's tool for
dealing with filenames and paths in a platform independent
fashion). Michael Schwern pointed at Ken Williams' &quot;excellent
<i><a href='http://search.cpan.org/perldoc?Path::Class'>Path::Class</a></i> module which gives you actual file and directory
objects&quot; which he reckons has a much better interface than
File::Spec.</p>
<p><a href='http://groups.google.com/groups?threadm=200309010757.h817v7209704@thu8.leo.home' target='_blank'>groups.google.com</a></p>
<a name='Notifications'></a><h2>Notifications</h2>
<p>Gordon Henriksen posted a great discussion of using notifications to
implement weakrefs. Rather wonderfully he used the notification
system itself as a good example of why dying object notifications
were a good idea.</p>
<p><a href='http://groups.google.com/groups?threadm=000b01c37048$8b6febf0$cc54e8c7@domain.ma.iclub.com' target='_blank'>groups.google.com</a></p>
<a name='Parrot 100% GNU .NET'></a><h2>Parrot 100% GNU .NET</h2>
<p>Danger. Here be Licensing Issues. I don't do Licensing issues.</p>
<p>The main thrust of the discussion was what kind of library would ship
with Parrot. Dan's answer is worth reading, if only for the &quot;That's a
swamp I don't have enough castles for&quot; line.</p>
<p><a href='http://groups.google.com/groups?threadm=3F538A99.20209@web.de' target='_blank'>groups.google.com</a></p>
<p><a href='http://groups.google.com/groups?threadm=a05210611bb7b0329cc74@' target='_blank'>groups.google.com</a>[63.120.19.221] -- Dan's take on the library</p>
<a name='You are in a maze of keyed variants, all similar'></a><h2>You are in a maze of keyed variants, all similar</h2>
<p>This seems to have been a week in which Dan and Leo spent a good deal
of their time politely disagreeing with each other. This time they
were disagreeing about the need for all the keyed variants of
Parrot's opcodes.</p>
<p>Dan outlined the reasoning behind demanding keyed variants of every
operation in a PMC's vtable (Executive summary: A combination of
speed and space reasons). Leo still doesn't seem convinced but, for
now, Pumpking trumps Patch monster.</p>
<p><a href='http://groups.google.com/groups?threadm=a05210605bb790d0849c7@' target='_blank'>groups.google.com</a>[63.120.19.221]</p>
<a name='Parrot Z-machine'></a><h2>Parrot Z-machine</h2>
<p>Amir Karger's post from last week about implementing the Z-machine
(the VM that runs Infocom and other text adventures) got de-Warnocked
this week. Nicholas Clark explained that doing the Z-machine
'properly' would require some bits of Parrot that weren't actually
there yet, specifically dynamic opcode loading and dynamic bytecode
conversion. This led to a discussion of how to get those things
implemented.</p>
<p><a href='http://groups.google.com/groups?threadm=20030828131707.8989.qmail@web40705.mail.yahoo.com' target='_blank'>groups.google.com</a></p>
<a name='PIO Questions'></a><h2>PIO Questions</h2>
<p>Benjamin Goldberg posted a long list of issues and suggestions about
handling character type and encoding on Parrot IO
objects. J&uuml;rgen B&ouml;mels said that there were indeed issues,
that he'd be dealing with them as tuits allowed and that patches are
welcome.</p>
<p><a href='http://groups.google.com/groups?threadm=3F553E05.3EF95D80@hotpop.com' target='_blank'>groups.google.com</a></p>
<a name='How to dynamically add a method to a class'></a><h2>How to dynamically add a method to a class</h2>
<p>Joseph Ryan had asked how to add a method to a class at runtime. Dan
explained what was supposed to happen (each class has a 'backing
namespace' associated with it which contained all the class's
methods). Leo asked for a few details about how that would look in
Parrot assembly.</p>
<p>A little later, Joseph reported what appeared to be a bug in the way
IMCC handles <code>.namespace</code>. It appears that IMCC is working as
designed, the question is whether the design is doing the Right Thing.</p>
<p><a href='http://groups.google.com/groups?threadm=3F4A99A2.1060706@osu.edu' target='_blank'>groups.google.com</a></p>
<p><a href='http://groups.google.com/groups?threadm=3F5A9089.7060906@osu.edu' target='_blank'>groups.google.com</a></p>
<a name='Proposed amendment to chartype structure'></a><h2>Proposed amendment to chartype structure</h2>
<p>Peter Gibbs is working on adding support for additional chartypes to
Parrot, along with support for dynamic loading of the same. He
outlined how he planned to do it. Dan liked the idea and Peter set
off to implement it.</p>
<p><a href='http://groups.google.com/groups?threadm=002501c3739f$7b285160$c701010a@peter' target='_blank'>groups.google.com</a></p>
<a name='Acknowledgements, Announcements, Apologies'></a><h1>Acknowledgements, Announcements, Apologies</h1>
<p>First up, a combined apology and announcement. Mitchell Charity
nudged me to remind me about Mike Scott's wonderful Getting Started
with Parrot Guide/Wiki at
<a href='http://www.vendian.org/parrot/wiki/bin/view.cgi/Main/GettingStartedWithParrotDevelopment' target='_blank'>www.vendian.org</a>
which is wonderful and should be checked out immediately. Bravo Mike,
sorry it's taken so long to get round to mentioning it in the
summary.</p>
<p>Hopefully next week I'll have some info from the Perl Foundation
about their Parrot related grants. Gav Estey gave me the details in
an AIM conversation which I foolishly didn't log.</p>
<p>Apologies to everyone for spelling 'seven years and two days' as
'seven and 2 days' last week. I would fire my proofreader, but then
there would be nobody to write the summary.</p>
<p>ObLeonBrocard: Leon didn't say anything this week. As per usual.</p>
<p>My weblog has a shiny new URL this week. No new content (yet), but
you can admire the old stuff at <a href='http://www.bofh.org.uk:8080/.' target='_blank'>www.bofh.org.uk</a></p>
<p>As ever, if you've appreciated this summary, please consider one or
more of the following options:</p>
<ul>
<li><a name='Send money to the Perl Foundation at donate.perl-foundation.org/ and help support the ongoing development of Perl.'></a>Send money to the Perl Foundation at
<a href='http://donate.perl-foundation.org/' target='_blank'>donate.perl-foundation.org</a> and help support the ongoing
development of Perl.</li>
<li><a name='Get involved in the Perl 6 process. The mailing lists are open to all. dev.perl.org/perl6/ and www.parrotcode.org/ are good starting points with links to the appropriate mailing lists.'></a>Get involved in the Perl 6 process. The mailing lists are open  to
all. <a href='http://dev.perl.org/perl6/' target='_blank'>dev.perl.org</a> and <a href='http://www.parrotcode.org/' target='_blank'>www.parrotcode.org</a>
are good starting points with links to the appropriate mailing lists.</li>
<li><a name='Send feedback, flames, money, requests for consultancy, photographic and writing commissions, or a lovely birthday present to p<a href='mailto:6summarizer@bofh.org.uk'>6summarizer@bofh.org.uk</a>'></a>Send feedback, flames, money, requests for consultancy, photographic
and writing commissions, or a lovely birthday present to
<i><a href='http://search.cpan.org/perldoc?<a href='mailto:p6summarizer@bofh.org.uk'>p6summarizer@bofh.org.uk</a>'>p<a href='mailto:6summarizer@bofh.org.uk'>6summarizer@bofh.org.uk</a></a></i></li>
</ul>
</div>
